package homework2;

import java.util.*;

/**
 *
 * @author hungnv
 */
//Exercise 1
class Songuyento {

    int n;

    void nhap() {
        System.out.print("Moi nhap so can kiem tra: ");
        Scanner scin = new Scanner(System.in);
        this.n = scin.nextInt();
    }

    boolean ktnguyento() {
        int dem = 0;
        float m = (float) java.lang.Math.sqrt(this.n);
        for (int i = 1; i <= m; i++) {
            if (this.n % i == 0) {
                dem++;
            }
        }
        if (dem == 1) {
            return true;
        } else {
            return false;
        }

    }

    void Show() {
        if (this.ktnguyento()) {
            System.out.print(n + " la so nguyen to.");
        } else {
            System.out.print(n + " khong phai so nguyen to.");
        }
    }
}

//Exercise 2
class UCLN {

    int a, b;

    void Nhap() {
        System.out.println("Nhập số thứ nhất:");
        Scanner scin = new Scanner(System.in);
        a = scin.nextInt();
        while (a < 0) {
            System.out.println("Số bạn nhập không phải số nguyên dương. Vui lòng nhập lại:");
            a = scin.nextInt();
        }
        System.out.println("Nhập số thứ hai:");
        b = scin.nextInt();
        while (b < 0) {
            System.out.println("Số bạn nhập không phải số nguyên dương. Vui lòng nhập lại:");
            b = scin.nextInt();
        }
    }

    void TimUCLN() {
        int max = 0;
        int min;
        if (a < b) {
            min = a;
        } else {
            min = b;
        }
        for (int i = 1; i <= min; i++) {
            if (a % i == 0 && b % i == 0) {
                max = i;
            }
        }
        System.out.println("Uoc chung lon nhat la:" + max);
    }
}

// Exercise 4
class ThuaSoNguyenTo {

    int n;

    void Nhap() {
        System.out.println("Nhập số n:");
        Scanner scin = new Scanner(System.in);
        n = scin.nextInt();
    }

    void Phantich() {
        int i;
        Songuyento a = new Songuyento();
        while (this.n > 1) {
            for (i = 2; i <= n; i++) {
                a.n = i;
                if (a.ktnguyento() == true && n % i == 0) {
                    System.out.print(i + "x");
                    this.n /= i;
                    break;
                }
            }
        }
        System.out.print(n + "\n");
    }
}
//Exercise 5

class LietKeNguyenTo {

    int n;

    void nhap() {
        System.out.print("Moi nhap so n: ");
        Scanner scin = new Scanner(System.in);
        this.n = scin.nextInt();
    }

    void Lietke() {
        Songuyento a = new Songuyento();
        for (int i = 1; i <= n; i++) {
            a.n = i;
            if (a.ktnguyento() == true) {
                System.out.print(i + " ");
            }
        }
    }
}

public class HomeWork2 {

    static void processing() {
        System.out.println("Chon thao tac:");
        System.out.println("1. Tim so nguyen to");
        System.out.println("2. Tim uoc chung lon nhat");
        System.out.println("4. Phan tich thua so nguyen to");
        System.out.println("5. Liet ke so nguyen to");
        System.out.print("Nhap so thu tu: ");
        Scanner scin = new Scanner(System.in);
        String s = scin.next();
        int f = Integer.parseInt(s);
        System.out.println();
        switch (f) {
            case 1:
                Songuyento bt1 = new Songuyento();
                bt1.nhap();
                bt1.ktnguyento();
                bt1.Show();
                break;
            case 2:
                UCLN bt2 = new UCLN();
                bt2.Nhap();
                bt2.TimUCLN();
                break;
            case 4:
                ThuaSoNguyenTo bt4 = new ThuaSoNguyenTo();
                bt4.Nhap();
                bt4.Phantich();
                break;
            case 5:
                LietKeNguyenTo bt5 = new LietKeNguyenTo();
                bt5.nhap();
                bt5.Lietke();
                break;
            default:
                System.out.println("Nhap sai so thu tu!");
                System.out.println();
                HomeWork2.processing();
        }

    }

    public static void main(String[] args) {
        HomeWork2.processing();
    }
}